package com.ysp;

/**
 * 懒汉式：这一大类是不使用的
 */


/**
 * @author ysp
 */
public class Singleton02 {

    private static Singleton02 singleton02 = null;

    private Singleton02(){}

    public static synchronized Singleton02 getInstance(){
        if(singleton02==null){
            singleton02 = new Singleton02();
        }
        return singleton02;
    }
}


/*
这一种是不能使用的，存在线程安全问题
public class Singleton02 {
    private static Singleton02 singleton02 = null;
    private Singleton02(){}
    public static Singleton02 getInstance(){
        if(singleton02==null){
            singleton02 = new Singleton02();
        }
        return singleton02;
    }
}*/

/*
这一种也是不能使用的，存在线程安全问题  这里使用锁也不能解决线程安全的问题
public class Singleton02 {
    private static Singleton02 singleton02 = null;
    private Singleton02(){}
    public static Singleton02 getInstance(){
        if(singleton02==null){
            synchronized(Singleton02.class){
                singleton02 = new Singleton02();
            }
        }
        return singleton02;
    }
}*/
